/**
 * CommunicationRemote.java
 *
 * @author Beatrice Bacelli
 * @author Luca Bedogni
 * @author Silvia Righini
 */
package unibo.lsb.communication;

import java.io.Serializable;
import java.rmi.RemoteException;

import unibo.lsb.exception.TokioException;
import unibo.lsb.logic.CoveredDice;
import unibo.lsb.logic.LastAssignedPenalty;
import unibo.lsb.server.Game;

public interface CommunicationRemote extends java.rmi.Remote, Serializable {

	/* just receives information */
	boolean receiveGameDetails(Game game) throws RemoteException;

	/* returns true, just to check process is alive */
	boolean isAlive() throws RemoteException;

	boolean receiveTurn(int playerNumber) throws RemoteException;

	boolean receivePenalty(LastAssignedPenalty lastAssignedPenalty)
			throws RemoteException;

	boolean receiveDice(CoveredDice coveredDice) throws RemoteException,
			TokioException;

	boolean receiveMsg(String msg) throws RemoteException, TokioException;

	boolean receiveWinning(int playerNumber) throws RemoteException,
			TokioException;

	boolean receiveStatus(int playerNumber, boolean alive)
			throws RemoteException, TokioException;

}
